package com.atguigu.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


/**
 * 如果想DIY一些定制化的功能，只要写好这个组件，然后将它交给springboot，springboot会自动装配
 *
 * @author sx
 * @date 2022-02-20 22:20
 */
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
    //官方建议扩展springmvc的方式
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        //浏览器发送 /six ， 请求来到 test.html
//        registry.addViewController("/six").setViewName("test");
        registry.addViewController("/index.html").setViewName("index");
        registry.addViewController("/main.html").setViewName("main");
    }

    /**
     * 将组件注册到容器
     * 自定义的国际化组件就生效了
     */
    @Bean
    public LocaleResolver localeResolver() {
        return new MyLocaleResolver();
    }

    /**
     * 注册拦截器
     * 该版本自定义的拦截器会拦截静态资源，因此在使用spring2.0+时，配置拦截器之后，我们要把静态资源的路径加入到不拦截的路径之中
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginHandlerInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/index.html", "/", "/user/login", "/css/*", "/js/**", "/img/**","/404.html","/500.html");
    }


//    public ViewResolver myViewResolver() {
//        return new MyViewResolver();
//    }
//
//    //自定义一个自己的视图解析器
//    public static class MyViewResolver implements ViewResolver {
//
//        @Override
//        public View resolveViewName(String viewName, Locale locale) throws Exception {
//            return null;
//        }
//    }
}
